package com.wuyou.sso.common.enums;

import cn.hutool.core.util.EnumUtil;
import com.baomidou.mybatisplus.annotation.IEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 子系统
 *
 * @author LHB
 * @date 2021/3/23 11:05
 */
@RequiredArgsConstructor
public enum SystemEnum implements IEnum<String> {

    /**
     * 无
     */
    NONE("", "无"),

    /**
     * OMS 订单系统
     */
    OMS("OMS", "OMS"),

    /**
     * BMS 计费系统
     */
    BMS("BMS", "BMS"),

    /**
     * RMS 基础信息
     */
    RMS("RMS", "RMS"),

    /**
     * TMS 车队系统
     */
    TMS("TMS", "TMS"),

    /**
     * YMS 堆场系统
     */
    YMS("YMS", "YMS"),

    /**
     * WMS 仓库系统
     */
    WMS("WMS", "WMS"),

    /**
     * ADMIN 配置系统
     */
    ADMIN("ADMIN", "ADMIN");

    /**
     * 类型
     */
    private final String type;

    /**
     * 描述
     */
    @JsonValue
    @Getter
    private final String description;

    @JsonCreator(mode = JsonCreator.Mode.DELEGATING)
    public static SystemEnum getEnum(Object value) {
        return EnumUtil.likeValueOf(SystemEnum.class, value);
    }

    @Override
    public String getValue() {
        return this.type;
    }
}
